summaryrefslogtreecommitdiff
path: root/app/[lng]/evcp/(evcp)/general-contracts/page.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/[lng]/evcp/(evcp)/general-contracts/page.tsx')
-rw-r--r--app/[lng]/evcp/(evcp)/general-contracts/page.tsx39
1 files changed, 5 insertions, 34 deletions
diff --git a/app/[lng]/evcp/(evcp)/general-contracts/page.tsx b/app/[lng]/evcp/(evcp)/general-contracts/page.tsx
index 47677bb3..a6d5057c 100644
--- a/app/[lng]/evcp/(evcp)/general-contracts/page.tsx
+++ b/app/[lng]/evcp/(evcp)/general-contracts/page.tsx
@@ -7,6 +7,7 @@ import {
getGeneralContractCategoryCounts,
getVendors
} from "@/lib/general-contracts/service"
+import { searchParamsCache } from "@/lib/general-contracts/validation"
import { GeneralContractsTable } from "@/lib/general-contracts/main/general-contracts-table"
import { getValidFilters } from "@/lib/data-table"
import { type SearchParams } from "@/types/table"
@@ -21,43 +22,13 @@ interface IndexPageProps {
searchParams: Promise<SearchParams>
}
-// searchParams 파싱을 위한 기본 파서 함수
-function parseSearchParams(searchParams: SearchParams) {
- const page = Number(searchParams.page) || 1
- const perPage = Number(searchParams.per_page) || 10
- const sort = searchParams.sort
- ? Array.isArray(searchParams.sort)
- ? searchParams.sort.map((s: string) => {
- const [id, desc] = s.split('.')
- return { id, desc: desc === 'desc' }
- })
- : [{ id: searchParams.sort.split('.')[0], desc: searchParams.sort.split('.')[1] === 'desc' }]
- : [{ id: "registeredAt", desc: true }]
-
- return {
- page,
- perPage,
- sort,
- filters: [],
- contractNumber: searchParams.contractNumber as string,
- name: searchParams.name as string,
- status: searchParams.status as string,
- category: searchParams.category as string,
- type: searchParams.type as string,
- vendorId: searchParams.vendorId ? Number(searchParams.vendorId) : undefined,
- createdAtFrom: searchParams.createdAtFrom as string,
- createdAtTo: searchParams.createdAtTo as string,
- signedAtFrom: searchParams.signedAtFrom as string,
- signedAtTo: searchParams.signedAtTo as string,
- search: searchParams.search as string,
- }
-}
-
export default async function GeneralContractsPage(props: IndexPageProps) {
// ✅ searchParams 파싱
const searchParams = await props.searchParams
- const search = parseSearchParams(searchParams)
-
+ const search = searchParamsCache.parse(searchParams)
+
+ console.log("Parsed search params:", search)
+
const validFilters = getValidFilters(search.filters)
// ✅ 모든 데이터를 병렬로 로드